x86: reduce EOI stack's size in per-cpu area.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 26 Jan 2010 15:53:52 +0000 (15:53 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 26 Jan 2010 15:53:52 +0000 (15:53 +0000)
Only dynamic vectors uses EOI stack, so the size
can be safely reducd to NR_DYNAMIC_VECTORS.

Signed-off-by : Xiantao Zhang <xiantao.zhang@intel.com>

xen/arch/x86/irq.c

index 7542f9d93642f77f0a05904d7781f0e2c998a08b..93e64e8c38c878db2a41a8b463f88943db174a0b 100644 (file)
@@ -753,8 +753,8 @@ struct pending_eoi {
     u32 vector:8; /* vector awaiting EOI */
 };
 
-static DEFINE_PER_CPU(struct pending_eoi, pending_eoi[NR_VECTORS]);
-#define pending_eoi_sp(p) ((p)[NR_VECTORS-1].vector)
+static DEFINE_PER_CPU(struct pending_eoi, pending_eoi[NR_DYNAMIC_VECTORS]);
+#define pending_eoi_sp(p) ((p)[NR_DYNAMIC_VECTORS-1].vector)
 
 static inline void set_pirq_eoi(struct domain *d, unsigned int irq)
 {
@@ -816,7 +816,7 @@ static void __do_IRQ_guest(int irq)
     {
         sp = pending_eoi_sp(peoi);
         ASSERT((sp == 0) || (peoi[sp-1].vector < vector));
-        ASSERT(sp < (NR_VECTORS-1));
+        ASSERT(sp < (NR_DYNAMIC_VECTORS-1));
         peoi[sp].irq = irq;
         peoi[sp].vector = vector;
         peoi[sp].ready = 0;